package com.redepronik.negosyscom.seguridad.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.PostConstruct;

import org.primefaces.event.SelectEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.redepronik.negosys.seguridad.entity.Bitacora;
import com.redepronik.negosys.seguridad.entity.Usuario;
import com.redepronik.negosys.seguridad.service.BitacoraService;
import com.redepronik.negosys.seguridad.service.UsuarioService;

@Controller
@Scope("session")
public class BitacoraBean implements Serializable {

	private static final long serialVersionUID = 1L;

	@Autowired
	BitacoraService bitacoraService;

	@Autowired
	UsuarioService usuarioService;

	private Usuario usuario;
	private String criterio;
	private Date fechaInicio;
	private Date fechaFinal;

	List<Bitacora> listaBitacora;
	List<Usuario> listaUsuario;

	public BitacoraBean() {
	}

	public void buscarUsuario() {
		listaUsuario = usuarioService.obtenerPorLoginOrNombre(criterio);
	}

	public void cargarUsuario(SelectEvent event) {
		usuario = usuarioService.obtenerPorLoginSimple(usuario.getLogin());
	}

	public void consultar() {
		listaBitacora = new ArrayList<Bitacora>();
		listaBitacora = bitacoraService.obtener(usuario.getLogin(),
				fechaInicio, fechaFinal);
	}

	public String getCriterio() {
		return criterio;
	}

	public Date getFechaFinal() {
		return fechaFinal;
	}

	public Date getFechaInicio() {
		return fechaInicio;
	}

	public List<Bitacora> getListaBitacora() {
		return listaBitacora;
	}

	public List<Usuario> getListaUsuario() {
		return listaUsuario;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	@PostConstruct
	public void init() {
		usuario = new Usuario();
	}

	public void limpiarBusqueda() {
		usuario = new Usuario();
		listaUsuario = new ArrayList<Usuario>();
		criterio = "";
	}

	public void setCriterio(String criterio) {
		this.criterio = criterio;
	}

	public void setFechaFinal(Date fechaFinal) {
		this.fechaFinal = fechaFinal;
	}

	public void setFechaInicio(Date fechaInicio) {
		this.fechaInicio = fechaInicio;
	}

	public void setListaBitacora(List<Bitacora> listaBitacora) {
		this.listaBitacora = listaBitacora;
	}

	public void setListaUsuario(List<Usuario> listaUsuario) {
		this.listaUsuario = listaUsuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

}